package cardsdk

import (
	"fmt"
	"strings"

	"gitee.com/fhe-search/fhe-search-rpc/g"

	"gitee.com/fhe-search/nfhedecd/NFHE_Function"
	"gitee.com/fhe-search/nfhedecd/denseComputiing"
	"gitee.com/fhe-search/nfhedecd/deviceManage"
	"gitee.com/fhe-search/nfhedecd/interfaceAPI"
)

func NFHEDECDExample() {
	// sm1字符串加密
	{
		User_Auth_Password1 := interfaceAPI.ExportUserAuthPWPrefix(1, g.GetConfig().FheSearchConfig.SecretKeyPath)
		plainData1 := "你好，世界！"
		encDataStr1, _ := denseComputiing.PEncStr(plainData1, 1)
		// 字符串解密
		var plainDataValue1 string
		plainDataValue1, _ = denseComputiing.PDecStr(encDataStr1, 1, User_Auth_Password1)
		plainDataValue1 = strings.TrimRight(plainDataValue1, "\000") // 去除多余的字节
		fmt.Println(plainData1 == plainDataValue1)
		fmt.Println(plainData1)
		fmt.Println(plainDataValue1)
		fmt.Println(strings.Compare(plainDataValue1, plainData1))
	}

	// fhe加密解密示例
	{
		plain := uint(123)
		encData, _ := NFHE_Function.NFHE_ENC(plain)
		decData, _ := NFHE_Function.NFHE_DEC(encData)
		if decData != plain {
			fmt.Println("同态加解密错误？", plain)
		} else {
			fmt.Println("同态加解密正确！", plain)
		}
	}
	deviceManage.NFHE_DECD_CloseDevice()
}

// 从word中提取文本信息

//func ReadPDFfiles(pdfPath string) (pdfText string, err error) {
//	// 打开 PDF 文件
//	f, err := os.Open(pdfPath)
//	if err != nil {
//		log.Fatalf("无法打开文件: %s", err)
//	}
//	defer f.Close()
//
//	// 读取 PDF 文档
//	pdfReader, err := model.NewPdfReader(f)
//	if err != nil {
//		log.Fatalf("无法读取 PDF 文档: %s", err)
//	}
//
//	// 初始化文本提取器
//	var text string
//	numPages, err := pdfReader.GetNumPages()
//	if err != nil {
//		log.Fatalf("无法获取页数: %s", err)
//	}
//
//	// 遍历每一页并提取文本
//	for i := 1; i <= numPages; i++ {
//		page, err := pdfReader.GetPage(i)
//		if err != nil {
//			log.Printf("无法获取第 %d 页: %s", i, err)
//			continue
//		}
//
//		// 创建文本提取器
//		ex, err := extractor.New(page)
//		if err != nil {
//			log.Printf("无法创建提取器: %s", err)
//			continue
//		}
//
//		// 提取文本
//		pageText, err := ex.ExtractText()
//		if err != nil {
//			log.Printf("无法提取第 %d 页的文本: %s", i, err)
//			continue
//		}
//
//		text += pageText + "\n" // 添加换行符以区分页面
//	}
//
//	// 打印提取的文本
//	return text, nil
//}
